/**
 * ajax 服务路由集合
 */
const router = require('koa-router')({
    prefix: '/weapp'
})
const controllers = require('../controllers')
const { mysql } = require('../qcloud')
const jsonwebtoken = require('jsonwebtoken')
router.use('/', async (ctx, next) => {
   
    var paths = ["/weapp/login", "/weapp/registe"]
    if (paths.indexOf(ctx.path) != -1) {
        await next()
        console.log(ctx.path)
    } else {


        const body = ctx.request.body;
        const { token } = ctx.request.header
        var payload = jsonwebtoken.verify(token, 'jwt dome')
        await mysql.select('*').where({ id: payload.userId, token }).from('user').then(res => {
            console.log(res)
            if (res.length > 0) {
                return next()
            } else {
                throw (new Error('身份验证失败，请重新登录'))
            }

        })
    }

})
router.get('/test', controllers.test.get)
// 从 sdk 中取出中间件
// 这里展示如何使用 Koa 中间件完成登录态的颁发与验证
const { auth: { authorizationMiddleware, validationMiddleware } } = require('../qcloud')

// 注册接口
router.post('/registe', controllers.login.registe)

// 登录接口
router.post('/login', controllers.login.login)

// 请求添加好友接口
router.post('/friendRequest', controllers.login.friendRequest)

// 添加好友接口
router.post('/addFriend', controllers.login.addFriend)

// 添加好友列表接口
router.get('/getFriendList', controllers.login.getFriendList)

// 搜索用户接口
router.get('/searchUserByMobilePhone', controllers.login.searchUserByMobilePhone)

// 搜索用户接口
router.get('/searchUserByUserId', controllers.login.searchUserByUserId)

// --- 登录与授权 Demo --- //
// 登录接口
router.get('/login', authorizationMiddleware, controllers.login.wxlogin)
// 用户信息接口（可以用来验证登录态）
router.get('/user', validationMiddleware, controllers.user)

// --- 图片上传 Demo --- //
// 图片上传接口，小程序端可以直接将 url 填入 wx.uploadFile 中
router.post('/upload', controllers.upload)

// --- 信道服务接口 Demo --- //
// GET  用来响应请求信道地址的
router.get('/tunnel', controllers.tunnel.get)
// POST 用来处理信道传递过来的消息
router.post('/tunnel', controllers.tunnel.post)

// --- 客服消息接口 Demo --- //
// GET  用来响应小程序后台配置时发送的验证请求
router.get('/message', controllers.message.get)
// POST 用来处理微信转发过来的客服消息
router.post('/message', controllers.message.post)

module.exports = router
